{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {
    "deletable": true,
    "editable": true
   },
   "source": [
    "# TSFRESH Robot Failure Example\n",
    "This example show shows how to use [tsfresh](https://tsfresh.readthedocs.io/) to exctract useful features from multiple timeseries and use them to improve classification performance."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/obi/02-ProjectSupport/anaconda3/lib/python3.6/site-packages/sklearn/cross_validation.py:44: DeprecationWarning: This module was deprecated in version 0.18 in favor of the model_selection module into which all the refactored classes and functions are moved. Also note that the interface of the new CV iterators are different from that of this module. This module will be removed in 0.20.\n",
      "  \"This module will be removed in 0.20.\", DeprecationWarning)\n"
     ]
    }
   ],
   "source": [
    "%matplotlib inline\n",
    "import matplotlib.pylab as plt\n",
    "import seaborn as sns\n",
    "from tsfresh.examples.robot_execution_failures import download_robot_execution_failures, load_robot_execution_failures\n",
    "from tsfresh import extract_features, extract_relevant_features, select_features\n",
    "from tsfresh.utilities.dataframe_functions import impute\n",
    "from tsfresh.feature_extraction import ComprehensiveFCParameters\n",
    "from sklearn.tree import DecisionTreeClassifier\n",
    "from sklearn.cross_validation import train_test_split\n",
    "from sklearn.metrics import classification_report"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# We set the logger to Error level\n",
    "# This is not recommend for normal use as you can oversee important Warning messages\n",
    "import logging\n",
    "logging.basicConfig(level=logging.ERROR)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "deletable": true,
    "editable": true
   },
   "source": [
    "## Load and visualize data\n",
    "The data set documents 88 robot executions (`id` 1 - 88), which are a subset of the [Robot Execution Failures Data Set](https://archive.ics.uci.edu/ml/datasets/Robot+Execution+Failures). For the purpose of simplicity we are only differentiating between successfull and failed executions (`y`).\n",
    "For each execution 15 force (F) and torque (T) samples are given, which were measured at regular time intervals for the spatial dimensions x, y, and z. Therefore each row of the data frame references a specific execution (`id`), a time index (`index`) and documents the respective measurements of 6 sensors (`F_x`, `F_y`, `F_z`, `T_x`, `T_y`, `T_z`)."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>time</th>\n",
       "      <th>F_x</th>\n",
       "      <th>F_y</th>\n",
       "      <th>F_z</th>\n",
       "      <th>T_x</th>\n",
       "      <th>T_y</th>\n",
       "      <th>T_z</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>-1</td>\n",
       "      <td>-1</td>\n",
       "      <td>63</td>\n",
       "      <td>-3</td>\n",
       "      <td>-1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>62</td>\n",
       "      <td>-3</td>\n",
       "      <td>-1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>-1</td>\n",
       "      <td>-1</td>\n",
       "      <td>61</td>\n",
       "      <td>-3</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1</td>\n",
       "      <td>3</td>\n",
       "      <td>-1</td>\n",
       "      <td>-1</td>\n",
       "      <td>63</td>\n",
       "      <td>-2</td>\n",
       "      <td>-1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1</td>\n",
       "      <td>4</td>\n",
       "      <td>-1</td>\n",
       "      <td>-1</td>\n",
       "      <td>63</td>\n",
       "      <td>-3</td>\n",
       "      <td>-1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   id  time  F_x  F_y  F_z  T_x  T_y  T_z\n",
       "0   1     0   -1   -1   63   -3   -1    0\n",
       "1   1     1    0    0   62   -3   -1    0\n",
       "2   1     2   -1   -1   61   -3    0    0\n",
       "3   1     3   -1   -1   63   -2   -1    0\n",
       "4   1     4   -1   -1   63   -3   -1    0"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "download_robot_execution_failures()\n",
    "df, y = load_robot_execution_failures()\n",
    "df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\nkUgkEkkD/z/7XWZ3wLX7xwAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x10ac4a588>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAs8AAAGACAYAAABSlI+TAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xl8VOXd///XObMnM1lJ2ANhU1A2QRD3uoEL2qq1lVap\nWnvfam2lrWKtgK32V1FvbOtOb63eaMXd6reLCm4FBHFDQEDAhH0JWzIzyezn90eSIWFNwoTJJO/n\n48EjM2e5zmcuksk717nmHMOyLAsRERERETksM90FiIiIiIhkCoVnEREREZEmUngWEREREWkihWcR\nERERkSZSeBYRERERaSKFZxERERGRJlJ4FpF26ZhjjmH8+PFccsklyX+/+c1vDrnP3LlzueeeewC4\n6qqr+Pe//300Sk27RYsWcdFFFzV7v3g8zn/913+xY8cOnn/+eWbOnHnA7YYPH87GjRv3W75u3Tqu\nueYaLrnkEi644AKeeuqp5Lr333+f8ePHM3bsWH72s58RCAQAmDNnDg8//HCzaxURSRV7ugsQEWkt\nzzzzDAUFBU3e/uyzz+bss89uxYral6eeeopRo0bRqVMnrrzyymbvf/vtt3PppZfy3e9+F7/fz+WX\nX87AgQM55phj+PWvf83zzz9P7969uf/++3nggQe46667OOecc3juuedYsWIFAwcObIVXJSJyaArP\nItLhvPzyy7zwwgtEo1EqKyu5/vrrmTBhAq+++ipvvfUWTzzxRHLbjRs3Mn78eD7//PP9nr/66qu8\n/PLL1NTU4PV6mTVrFi+99BLPP/88iUSCvLw8pkyZQt++ffer4d133+Wxxx4jGo3idruZPHkyw4cP\n59e//jXV1dX86U9/YvXq1Vx99dXMmjWLvLw8pk6dys6dO6moqKB79+788Y9/pLCwkLPOOouLLrqI\n999/nz179nDzzTfz2WefsXz5cux2O4899hidO3fmrLPO4pxzzuGTTz7B7/dzzTXXMGHChEZ1RSIR\nHnjgARYvXkw8HmfQoEHceeedeL3eRtvV1NTwzDPP8OabbwLw0EMPsXv3bqZOnconn3zC3XffjWEY\nDB48mEQiccD/h8svv5wLLrgAAJ/PR0lJCZs3b6aiooLBgwfTu3dvAK688kouueQSpk2bhmEYXH75\n5Tz88MM88sgjLfsGEBE5Apq2ISLt1sSJExtN29i5cyfBYJCXXnqJmTNn8vrrr/Pggw9y//33t/gY\n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\ndi0DBgxoySFFRERERNIuZbfnnjx5MlOmTGHGjBn06dOHsWPHYrPZuOqqq5gwYQKWZTFp0iRcLleq\nDikiIiIiclS12Zuk6PRF+uj0Ufqo79NL/Z9e6v/0Ud+nl/o/vY7KtA0RERERkY5I4VlEREREpIkU\nnkVEREREmihlHxgUEREREUmlLVs2M3HilQwYcExy2YgRJ3LNNdenrSaFZxERERFps3r3LuXhh2em\nu4wkhWcREREROaQX313D4pXbU9rmiccWc8VZ/VLW3p13TmbkyFGMG3chN954HZMnT+GYY45NWfv1\nFJ5FREREpM0qLy/jpz/9SfL5tGn3UFRUvN92kyffyY03XsfixQu5+OJLWyU4QxsNz6HgdsCT7jJE\nREREBLjirH4pHSVujqZO2/D5fJx33gW88MJzTJ16T6vV0yavtrHm87+muwQRERERySCbNm1kzpy3\nuPzy7/HII39steO0yfAcrt5BLLw73WWIiIiISAaIxWL87ndTmDTpViZOvI5168qZN++DVjlWm5y2\nARDyl+F15ae7DBERERFJk65duzFz5tOH3c5ut/PEE3tnLvzpT4+1Wk1tOzx3OiHdZYiIiIhIGxGN\nRpk06ab9lpeU9OK2235zVGpok+HZ4cohFCjDsiwMw0h3OSIiIiLSBjgcjrRf87lNznn2FfQjEasm\nGkrt9QRFRERERI5EmwzPOQX9gdqpGyIiIiIibUWbDM++wtrrCCo8i4iIiEhb0ibDs9Odh91VSDiw\nDsuKp7scERERERGgjX5gEMDtKyWw4xMiwU24vCXpLkdEREREjrItWzYzceKVDBhwTHLZiBEncs01\n16etpjYfnkP+MoVnERERkQ6qqbfnPlrabHh2eXsDEAqUkcsZ6S1GREREpAN7dc3/4/PtS1Pa5vDi\nwVza76KUtJVIJLjyykv5y1+eIScnl9dee5nq6iA/+MHElLTfUJuc8wxgs3twZnUjHNxIIh5Jdzki\nIiIikgbl5WX89Kc/Sf6rqNj/UsamaXLeeeczZ87bALz99j85//zUBPN9tdmRZwC3tzeR6s2Eg+vx\n5PRLdzkiIiIiHdKl/S5K2ShxczV12saFF17MtGl3MGzYcPLzCykoKGyVetrsyDOAy1cK6JJ1IiIi\nInJoXbp0xev18cwzT3HRRZe02nHadnj2loBhU3gWERERkcO6+OJv8+WXXzB69JhWO0abDs+m6cCV\n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\nq67iy1/+MgDOOXzfTzmi+vMP//APLFu2jOnTp6cdSl3p7Oxk7ty5fOlLX+KGG27g05/+dNoh1ZU5\nc+YQRRHWWrq7uwmCY/rjWzlKs2fP5v7776/Or1mzhosuugiAyy67jBUrVqQV2oQ3eNvfd999nHXW\nWQBEUUQul0srtLowePvv3buX++67jzvuuGPY6xhT31Ld3d3k8/nqvO/7hGGoL9NR0NzcDMT74Kab\nbuIrX/lKyhHVlx//+Me0t7ezaNEivve976UdTl3Zu3cvW7Zs4cEHH2TTpk38xV/8BU8++STGmLRD\nqwtNTU1s3ryZz3/+8+zdu5cHH3ww7ZDqwpVXXsmmTZuq88656jHf3NxMV1dXWqFNeIO3faXB5JVX\nXuHf//3f+Y//+I+0QqsLtds/iiK+/vWvc/vttx9VpWVMtTzn83kKhUJ13lqrxHkUbd26lT/+4z/m\nD/7gD/j93//9tMOpK48//jgrVqzguuuuY+3atXzta19j586daYdVF9ra2li4cCHZbJZTTjmFXC7H\nnj170g6rbvzbv/0bCxcu5KmnnuKJJ57gtttuG3A6VUaH5/WnA4VCgdbW1hSjqT8///nPueuuu/je\n975He3t72uHUjTVr1rBhwwa+9a1vcfPNN7N+/XruueeeIz5vTGWm8+fP55lnnuHqq69m9erVzJ07\nN+2Q6sauXbv40z/9U+68804uvfTStMOpO7UtDddddx3f+ta3mDZtWooR1Y8LL7yQH/zgB/zJn/wJ\nO3bsoLe3l7a2trTDqhutra1kMhkAJk2aRBiGRFGUclT15+Mf/zgrV67k4osv5rnnnuOSSy5JO6S6\n8cQTT/DII4/w8MMP67tnlJ177rn8z//8DwCbNm3i5ptv5utf//oRnzemkucrrriC559/nmXLluGc\n49577007pLrx4IMPcuDAAb773e/y3e9+F4g71eviNZnoLr/8cl566SWuvfZanHPceeed6vM/iq6/\n/nruuOMOli9fTrlc5q/+6q9oampKO6y687WvfY1vfvOb3HfffZxyyilceeWVaYdUF6Io4p577mHG\njBnceOONAHziE5/gpptuSjkyORzjhntpoYiIiIhInRtTfZ5FRERERMYyJc8iIiIiIsOk5FlERERE\nZJiUPIuIiIiIDJOSZxERERGRYVLyLCIyhnV1dfGXf/mXbN++nT//8z9POxwRkbqn5FlEZAzbv38/\nb731FieccAIPPfRQ2uGIiNQ93edZRGQMu+GGG+js7GTx4sWsXbuWX//619x22200Njby8ssv09XV\nxR133METTzzBW2+9xWc/+1luu+02oiji29/+Ni+++CJRFHHNNddw/fXXp/12RETGPbU8i4iMYd/4\nxjeYPn06t99++4DyHTt28LOf/YybbrqJ22+/nbvvvpuf/vSnPProo3R1dfHoo48C8JOf/IQf/ehH\nPP300/zud79L4y2IiEwoY+rvuUVEZHguu+wyADo6Ojj99NOZMmUKAG1tbezfv58XXniBtWvX8tvf\n/haAnp4e3n77bRYsWJBazCIiE4GSZxGRcSiTyVSng2DoV3kURdx666187nOfA2DPnj00NTWNWnwi\nIhOVum2IiIxhQRAQhuFRP++SSy7h0UcfpVwuUygUWL58Oa+++upxiFBEpL6o5VlEZAybMmUKHR0d\nQ/o8H8myZcvYsGEDX/jCFwjDkGuuuYaLL774OEUpIlI/dLcNEREREZFhUrcNEREREZFhUvIsIiIi\nIjJMSp5FRERERIZJybOIiIiIyDApeRYRERERGSYlzyIiIiIiw6TkWURERERkmJQ8i4iIiIgM0/8H\nYhi2Oey09j4AAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x115d85550>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "df[df.id == 3][['time', 'F_x', 'F_y', 'F_z', 'T_x', 'T_y', 'T_z']].plot(x='time', title='Success example (id 3)', figsize=(12, 6));\n",
    "df[df.id == 20][['time', 'F_x', 'F_y', 'F_z', 'T_x', 'T_y', 'T_z']].plot(x='time', title='Failure example (id 20)', figsize=(12, 6));"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "deletable": true,
    "editable": true
   },
   "source": [
    "## Extract Features"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": true,
    "deletable": true,
    "editable": true
   },
   "outputs": [],
   "source": [
    "extraction_settings = ComprehensiveFCParameters()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Feature Extraction: 100%|██████████| 528/528 [00:25<00:00, 20.40it/s]\n"
     ]
    }
   ],
   "source": [
    "X = extract_features(df, \n",
    "                     column_id='id', column_sort='time',\n",
    "                     default_fc_parameters=extraction_settings,\n",
    "                     impute_function= impute)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th>variable</th>\n",
       "      <th>F_x__abs_energy</th>\n",
       "      <th>F_x__absolute_sum_of_changes</th>\n",
       "      <th>F_x__agg_linear_trend__f_agg_\"max\"__chunk_len_10__attr_\"intercept\"</th>\n",
       "      <th>F_x__agg_linear_trend__f_agg_\"max\"__chunk_len_10__attr_\"rvalue\"</th>\n",
       "      <th>F_x__agg_linear_trend__f_agg_\"max\"__chunk_len_10__attr_\"slope\"</th>\n",
       "      <th>F_x__agg_linear_trend__f_agg_\"max\"__chunk_len_10__attr_\"stderr\"</th>\n",
       "      <th>F_x__agg_linear_trend__f_agg_\"max\"__chunk_len_50__attr_\"intercept\"</th>\n",
       "      <th>F_x__agg_linear_trend__f_agg_\"max\"__chunk_len_50__attr_\"rvalue\"</th>\n",
       "      <th>F_x__agg_linear_trend__f_agg_\"max\"__chunk_len_50__attr_\"slope\"</th>\n",
       "      <th>F_x__agg_linear_trend__f_agg_\"max\"__chunk_len_50__attr_\"stderr\"</th>\n",
       "      <th>...</th>\n",
       "      <th>T_z__time_reversal_asymmetry_statistic__lag_1</th>\n",
       "      <th>T_z__time_reversal_asymmetry_statistic__lag_2</th>\n",
       "      <th>T_z__time_reversal_asymmetry_statistic__lag_3</th>\n",
       "      <th>T_z__value_count__value_-inf</th>\n",
       "      <th>T_z__value_count__value_0</th>\n",
       "      <th>T_z__value_count__value_1</th>\n",
       "      <th>T_z__value_count__value_inf</th>\n",
       "      <th>T_z__value_count__value_nan</th>\n",
       "      <th>T_z__variance</th>\n",
       "      <th>T_z__variance_larger_than_standard_deviation</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>id</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>14.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.0</td>\n",
       "      <td>15.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>25.0</td>\n",
       "      <td>14.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.0</td>\n",
       "      <td>11.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.195556</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>12.0</td>\n",
       "      <td>10.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-2.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>-0.090909</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.0</td>\n",
       "      <td>11.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.195556</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>16.0</td>\n",
       "      <td>17.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>-0.181818</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.0</td>\n",
       "      <td>8.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.355556</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>17.0</td>\n",
       "      <td>13.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-2.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>-0.076923</td>\n",
       "      <td>-0.090909</td>\n",
       "      <td>-0.222222</td>\n",
       "      <td>0.0</td>\n",
       "      <td>9.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.382222</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 3270 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "variable  F_x__abs_energy  F_x__absolute_sum_of_changes  \\\n",
       "id                                                        \n",
       "1                    14.0                           2.0   \n",
       "2                    25.0                          14.0   \n",
       "3                    12.0                          10.0   \n",
       "4                    16.0                          17.0   \n",
       "5                    17.0                          13.0   \n",
       "\n",
       "variable  F_x__agg_linear_trend__f_agg_\"max\"__chunk_len_10__attr_\"intercept\"  \\\n",
       "id                                                                             \n",
       "1                                                       0.0                    \n",
       "2                                                       0.0                    \n",
       "3                                                       1.0                    \n",
       "4                                                       1.0                    \n",
       "5                                                       2.0                    \n",
       "\n",
       "variable  F_x__agg_linear_trend__f_agg_\"max\"__chunk_len_10__attr_\"rvalue\"  \\\n",
       "id                                                                          \n",
       "1                                                      -1.0                 \n",
       "2                                                       0.0                 \n",
       "3                                                      -1.0                 \n",
       "4                                                      -1.0                 \n",
       "5                                                      -1.0                 \n",
       "\n",
       "variable  F_x__agg_linear_trend__f_agg_\"max\"__chunk_len_10__attr_\"slope\"  \\\n",
       "id                                                                         \n",
       "1                                                      -1.0                \n",
       "2                                                       0.0                \n",
       "3                                                      -2.0                \n",
       "4                                                      -1.0                \n",
       "5                                                      -2.0                \n",
       "\n",
       "variable  F_x__agg_linear_trend__f_agg_\"max\"__chunk_len_10__attr_\"stderr\"  \\\n",
       "id                                                                          \n",
       "1                                                       0.0                 \n",
       "2                                                       0.0                 \n",
       "3                                                       0.0                 \n",
       "4                                                       0.0                 \n",
       "5                                                       0.0                 \n",
       "\n",
       "variable  F_x__agg_linear_trend__f_agg_\"max\"__chunk_len_50__attr_\"intercept\"  \\\n",
       "id                                                                             \n",
       "1                                                       0.0                    \n",
       "2                                                       0.0                    \n",
       "3                                                       0.0                    \n",
       "4                                                       0.0                    \n",
       "5                                                       0.0                    \n",
       "\n",
       "variable  F_x__agg_linear_trend__f_agg_\"max\"__chunk_len_50__attr_\"rvalue\"  \\\n",
       "id                                                                          \n",
       "1                                                       0.0                 \n",
       "2                                                       0.0                 \n",
       "3                                                       0.0                 \n",
       "4                                                       0.0                 \n",
       "5                                                       0.0                 \n",
       "\n",
       "variable  F_x__agg_linear_trend__f_agg_\"max\"__chunk_len_50__attr_\"slope\"  \\\n",
       "id                                                                         \n",
       "1                                                       0.0                \n",
       "2                                                       0.0                \n",
       "3                                                       0.0                \n",
       "4                                                       0.0                \n",
       "5                                                       0.0                \n",
       "\n",
       "variable  F_x__agg_linear_trend__f_agg_\"max\"__chunk_len_50__attr_\"stderr\"  \\\n",
       "id                                                                          \n",
       "1                                                       0.0                 \n",
       "2                                                       0.0                 \n",
       "3                                                       0.0                 \n",
       "4                                                       0.0                 \n",
       "5                                                       0.0                 \n",
       "\n",
       "variable                      ...                       \\\n",
       "id                            ...                        \n",
       "1                             ...                        \n",
       "2                             ...                        \n",
       "3                             ...                        \n",
       "4                             ...                        \n",
       "5                             ...                        \n",
       "\n",
       "variable  T_z__time_reversal_asymmetry_statistic__lag_1  \\\n",
       "id                                                        \n",
       "1                                              0.000000   \n",
       "2                                              0.000000   \n",
       "3                                              0.000000   \n",
       "4                                              0.000000   \n",
       "5                                             -0.076923   \n",
       "\n",
       "variable  T_z__time_reversal_asymmetry_statistic__lag_2  \\\n",
       "id                                                        \n",
       "1                                              0.000000   \n",
       "2                                              0.000000   \n",
       "3                                             -0.090909   \n",
       "4                                             -0.181818   \n",
       "5                                             -0.090909   \n",
       "\n",
       "variable  T_z__time_reversal_asymmetry_statistic__lag_3  \\\n",
       "id                                                        \n",
       "1                                              0.000000   \n",
       "2                                              0.000000   \n",
       "3                                              0.000000   \n",
       "4                                              0.000000   \n",
       "5                                             -0.222222   \n",
       "\n",
       "variable  T_z__value_count__value_-inf  T_z__value_count__value_0  \\\n",
       "id                                                                  \n",
       "1                                  0.0                       15.0   \n",
       "2                                  0.0                       11.0   \n",
       "3                                  0.0                       11.0   \n",
       "4                                  0.0                        8.0   \n",
       "5                                  0.0                        9.0   \n",
       "\n",
       "variable  T_z__value_count__value_1  T_z__value_count__value_inf  \\\n",
       "id                                                                 \n",
       "1                               0.0                          0.0   \n",
       "2                               0.0                          0.0   \n",
       "3                               0.0                          0.0   \n",
       "4                               1.0                          0.0   \n",
       "5                               2.0                          0.0   \n",
       "\n",
       "variable  T_z__value_count__value_nan  T_z__variance  \\\n",
       "id                                                     \n",
       "1                                 0.0       0.000000   \n",
       "2                                 0.0       0.195556   \n",
       "3                                 0.0       0.195556   \n",
       "4                                 0.0       0.355556   \n",
       "5                                 0.0       0.382222   \n",
       "\n",
       "variable  T_z__variance_larger_than_standard_deviation  \n",
       "id                                                      \n",
       "1                                                  0.0  \n",
       "2                                                  0.0  \n",
       "3                                                  0.0  \n",
       "4                                                  0.0  \n",
       "5                                                  0.0  \n",
       "\n",
       "[5 rows x 3270 columns]"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "Int64Index: 88 entries, 1 to 88\n",
      "Columns: 3270 entries, F_x__abs_energy to T_z__variance_larger_than_standard_deviation\n",
      "dtypes: float64(3270)\n",
      "memory usage: 2.2 MB\n"
     ]
    }
   ],
   "source": [
    "X.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Feature Extraction: 100%|██████████| 528/528 [00:25<00:00, 21.00it/s]\n"
     ]
    }
   ],
   "source": [
    "X_filtered = extract_relevant_features(df, y, \n",
    "                                       column_id='id', column_sort='time', \n",
    "                                       default_fc_parameters=extraction_settings)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true,
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th>variable</th>\n",
       "      <th>F_x__abs_energy</th>\n",
       "      <th>F_x__range_count__max_1__min_-1</th>\n",
       "      <th>F_y__abs_energy</th>\n",
       "      <th>T_y__standard_deviation</th>\n",
       "      <th>T_y__variance</th>\n",
       "      <th>T_y__abs_energy</th>\n",
       "      <th>F_z__standard_deviation</th>\n",
       "      <th>F_z__variance</th>\n",
       "      <th>F_z__agg_linear_trend__f_agg_\"var\"__chunk_len_10__attr_\"intercept\"</th>\n",
       "      <th>F_x__variance</th>\n",
       "      <th>...</th>\n",
       "      <th>T_z__quantile__q_0.9</th>\n",
       "      <th>F_z__agg_linear_trend__f_agg_\"max\"__chunk_len_5__attr_\"intercept\"</th>\n",
       "      <th>T_x__mean_autocorrelation</th>\n",
       "      <th>F_y__change_quantiles__f_agg_\"var\"__isabs_False__qh_1.0__ql_0.8</th>\n",
       "      <th>T_y__agg_linear_trend__f_agg_\"min\"__chunk_len_5__attr_\"intercept\"</th>\n",
       "      <th>F_y__change_quantiles__f_agg_\"var\"__isabs_False__qh_0.6__ql_0.2</th>\n",
       "      <th>F_z__agg_linear_trend__f_agg_\"max\"__chunk_len_10__attr_\"intercept\"</th>\n",
       "      <th>F_z__change_quantiles__f_agg_\"var\"__isabs_False__qh_0.8__ql_0.4</th>\n",
       "      <th>F_z__fft_coefficient__coeff_5__attr_\"imag\"</th>\n",
       "      <th>T_y__approximate_entropy__m_2__r_0.5</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>id</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>14.0</td>\n",
       "      <td>15.0</td>\n",
       "      <td>13.0</td>\n",
       "      <td>0.471405</td>\n",
       "      <td>0.222222</td>\n",
       "      <td>10.0</td>\n",
       "      <td>1.203698</td>\n",
       "      <td>1.448889</td>\n",
       "      <td>0.65</td>\n",
       "      <td>0.062222</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>62.833333</td>\n",
       "      <td>-0.095589</td>\n",
       "      <td>0.209184</td>\n",
       "      <td>-1.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>63.0</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>5.196152</td>\n",
       "      <td>0.359256</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>25.0</td>\n",
       "      <td>13.0</td>\n",
       "      <td>76.0</td>\n",
       "      <td>2.054805</td>\n",
       "      <td>4.222222</td>\n",
       "      <td>90.0</td>\n",
       "      <td>4.333846</td>\n",
       "      <td>18.782222</td>\n",
       "      <td>19.84</td>\n",
       "      <td>0.915556</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>64.666667</td>\n",
       "      <td>-0.054604</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>-1.000000</td>\n",
       "      <td>0.222222</td>\n",
       "      <td>70.0</td>\n",
       "      <td>2.666667</td>\n",
       "      <td>-9.526279</td>\n",
       "      <td>0.550204</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>12.0</td>\n",
       "      <td>14.0</td>\n",
       "      <td>40.0</td>\n",
       "      <td>1.768867</td>\n",
       "      <td>3.128889</td>\n",
       "      <td>103.0</td>\n",
       "      <td>4.616877</td>\n",
       "      <td>21.315556</td>\n",
       "      <td>22.01</td>\n",
       "      <td>0.355556</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>67.333333</td>\n",
       "      <td>-0.061050</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>-3.000000</td>\n",
       "      <td>0.250000</td>\n",
       "      <td>68.0</td>\n",
       "      <td>8.187500</td>\n",
       "      <td>-19.918584</td>\n",
       "      <td>0.123934</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>16.0</td>\n",
       "      <td>10.0</td>\n",
       "      <td>60.0</td>\n",
       "      <td>2.669998</td>\n",
       "      <td>7.128889</td>\n",
       "      <td>124.0</td>\n",
       "      <td>3.833188</td>\n",
       "      <td>14.693333</td>\n",
       "      <td>10.64</td>\n",
       "      <td>0.906667</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>63.666667</td>\n",
       "      <td>-0.133794</td>\n",
       "      <td>1.555556</td>\n",
       "      <td>-3.166667</td>\n",
       "      <td>1.360000</td>\n",
       "      <td>66.0</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>-12.990381</td>\n",
       "      <td>0.116317</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>17.0</td>\n",
       "      <td>13.0</td>\n",
       "      <td>46.0</td>\n",
       "      <td>2.039608</td>\n",
       "      <td>4.160000</td>\n",
       "      <td>180.0</td>\n",
       "      <td>4.841487</td>\n",
       "      <td>23.440000</td>\n",
       "      <td>16.00</td>\n",
       "      <td>0.773333</td>\n",
       "      <td>...</td>\n",
       "      <td>0.6</td>\n",
       "      <td>64.333333</td>\n",
       "      <td>-0.106108</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>-4.166667</td>\n",
       "      <td>1.040000</td>\n",
       "      <td>67.0</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>21.650635</td>\n",
       "      <td>0.507957</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 513 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "variable  F_x__abs_energy  F_x__range_count__max_1__min_-1  F_y__abs_energy  \\\n",
       "id                                                                            \n",
       "1                    14.0                             15.0             13.0   \n",
       "2                    25.0                             13.0             76.0   \n",
       "3                    12.0                             14.0             40.0   \n",
       "4                    16.0                             10.0             60.0   \n",
       "5                    17.0                             13.0             46.0   \n",
       "\n",
       "variable  T_y__standard_deviation  T_y__variance  T_y__abs_energy  \\\n",
       "id                                                                  \n",
       "1                        0.471405       0.222222             10.0   \n",
       "2                        2.054805       4.222222             90.0   \n",
       "3                        1.768867       3.128889            103.0   \n",
       "4                        2.669998       7.128889            124.0   \n",
       "5                        2.039608       4.160000            180.0   \n",
       "\n",
       "variable  F_z__standard_deviation  F_z__variance  \\\n",
       "id                                                 \n",
       "1                        1.203698       1.448889   \n",
       "2                        4.333846      18.782222   \n",
       "3                        4.616877      21.315556   \n",
       "4                        3.833188      14.693333   \n",
       "5                        4.841487      23.440000   \n",
       "\n",
       "variable  F_z__agg_linear_trend__f_agg_\"var\"__chunk_len_10__attr_\"intercept\"  \\\n",
       "id                                                                             \n",
       "1                                                      0.65                    \n",
       "2                                                     19.84                    \n",
       "3                                                     22.01                    \n",
       "4                                                     10.64                    \n",
       "5                                                     16.00                    \n",
       "\n",
       "variable  F_x__variance                  ...                   \\\n",
       "id                                       ...                    \n",
       "1              0.062222                  ...                    \n",
       "2              0.915556                  ...                    \n",
       "3              0.355556                  ...                    \n",
       "4              0.906667                  ...                    \n",
       "5              0.773333                  ...                    \n",
       "\n",
       "variable  T_z__quantile__q_0.9  \\\n",
       "id                               \n",
       "1                          0.0   \n",
       "2                          0.0   \n",
       "3                          0.0   \n",
       "4                          0.0   \n",
       "5                          0.6   \n",
       "\n",
       "variable  F_z__agg_linear_trend__f_agg_\"max\"__chunk_len_5__attr_\"intercept\"  \\\n",
       "id                                                                            \n",
       "1                                                 62.833333                   \n",
       "2                                                 64.666667                   \n",
       "3                                                 67.333333                   \n",
       "4                                                 63.666667                   \n",
       "5                                                 64.333333                   \n",
       "\n",
       "variable  T_x__mean_autocorrelation  \\\n",
       "id                                    \n",
       "1                         -0.095589   \n",
       "2                         -0.054604   \n",
       "3                         -0.061050   \n",
       "4                         -0.133794   \n",
       "5                         -0.106108   \n",
       "\n",
       "variable  F_y__change_quantiles__f_agg_\"var\"__isabs_False__qh_1.0__ql_0.8  \\\n",
       "id                                                                          \n",
       "1                                                  0.209184                 \n",
       "2                                                  0.000000                 \n",
       "3                                                  0.000000                 \n",
       "4                                                  1.555556                 \n",
       "5                                                  0.000000                 \n",
       "\n",
       "variable  T_y__agg_linear_trend__f_agg_\"min\"__chunk_len_5__attr_\"intercept\"  \\\n",
       "id                                                                            \n",
       "1                                                 -1.000000                   \n",
       "2                                                 -1.000000                   \n",
       "3                                                 -3.000000                   \n",
       "4                                                 -3.166667                   \n",
       "5                                                 -4.166667                   \n",
       "\n",
       "variable  F_y__change_quantiles__f_agg_\"var\"__isabs_False__qh_0.6__ql_0.2  \\\n",
       "id                                                                          \n",
       "1                                                  0.000000                 \n",
       "2                                                  0.222222                 \n",
       "3                                                  0.250000                 \n",
       "4                                                  1.360000                 \n",
       "5                                                  1.040000                 \n",
       "\n",
       "variable  F_z__agg_linear_trend__f_agg_\"max\"__chunk_len_10__attr_\"intercept\"  \\\n",
       "id                                                                             \n",
       "1                                                      63.0                    \n",
       "2                                                      70.0                    \n",
       "3                                                      68.0                    \n",
       "4                                                      66.0                    \n",
       "5                                                      67.0                    \n",
       "\n",
       "variable  F_z__change_quantiles__f_agg_\"var\"__isabs_False__qh_0.8__ql_0.4  \\\n",
       "id                                                                          \n",
       "1                                                  0.000000                 \n",
       "2                                                  2.666667                 \n",
       "3                                                  8.187500                 \n",
       "4                                                  1.000000                 \n",
       "5                                                  0.000000                 \n",
       "\n",
       "variable  F_z__fft_coefficient__coeff_5__attr_\"imag\"  \\\n",
       "id                                                     \n",
       "1                                           5.196152   \n",
       "2                                          -9.526279   \n",
       "3                                         -19.918584   \n",
       "4                                         -12.990381   \n",
       "5                                          21.650635   \n",
       "\n",
       "variable  T_y__approximate_entropy__m_2__r_0.5  \n",
       "id                                              \n",
       "1                                     0.359256  \n",
       "2                                     0.550204  \n",
       "3                                     0.123934  \n",
       "4                                     0.116317  \n",
       "5                                     0.507957  \n",
       "\n",
       "[5 rows x 513 columns]"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X_filtered.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "Int64Index: 88 entries, 1 to 88\n",
      "Columns: 513 entries, F_x__abs_energy to T_y__approximate_entropy__m_2__r_0.5\n",
      "dtypes: float64(513)\n",
      "memory usage: 353.4 KB\n"
     ]
    }
   ],
   "source": [
    "X_filtered.info()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true,
    "deletable": true,
    "editable": true
   },
   "source": [
    "## Train and evaluate classifier"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true
   },
   "outputs": [],
   "source": [
    "X_train, X_test, X_filtered_train, X_filtered_test, y_train, y_test = train_test_split(X, X_filtered, y, test_size=.4)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true,
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "             precision    recall  f1-score   support\n",
      "\n",
      "          0       0.83      1.00      0.91        10\n",
      "          1       1.00      0.92      0.96        26\n",
      "\n",
      "avg / total       0.95      0.94      0.95        36\n",
      "\n"
     ]
    }
   ],
   "source": [
    "cl = DecisionTreeClassifier()\n",
    "cl.fit(X_train, y_train)\n",
    "print(classification_report(y_test, cl.predict(X_test)))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "3270"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cl.n_features_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "             precision    recall  f1-score   support\n",
      "\n",
      "          0       1.00      1.00      1.00        10\n",
      "          1       1.00      1.00      1.00        26\n",
      "\n",
      "avg / total       1.00      1.00      1.00        36\n",
      "\n"
     ]
    }
   ],
   "source": [
    "cl2 = DecisionTreeClassifier()\n",
    "cl2.fit(X_filtered_train, y_train)\n",
    "print(classification_report(y_test, cl2.predict(X_filtered_test)))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true,
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "513"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cl2.n_features_"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "deletable": true,
    "editable": true
   },
   "source": [
    "Compared to using all features (`cl.n_features_`), using only the relevant features (`cl2.n_features_`) achieves better classification performance with less data."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "deletable": true,
    "editable": true
   },
   "source": [
    "# Extraction + filtering is the same as filtered extraction"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "deletable": true,
    "editable": true
   },
   "source": [
    "Above, we performed two feature extractions runs. A filtered one and a non filtered one. However, the results of the filtered is equal to just extracting all features and then filtering them."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true
   },
   "outputs": [],
   "source": [
    "X_filtered_2 = select_features(X, y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "True"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "(X_filtered.columns == X_filtered_2.columns).all()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 2",
   "language": "python",
   "name": "python2"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.11"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 0
}
